10 IF TY = 0 THEN ST = PEEK(978) *256 +2948:LN = 132:NW = 28
12 IF TY = 1 THEN ST = PEEK(978) *256 +3188:LN = 202:NW = 14
13 AD = ST
15 A$ = ""
17 IF X >NW THEN 55
20 I = PEEK(AD)
25 AD = AD +1
26 II = I: IF II >127 THEN II = II -128
27 A$ = A$ + CHR$(II)
30 IF I >127 THEN 100
50 IF AD <ST +LN THEN 20
55 PRINT : PRINT
60 PRINT "THAT'S ALL."
70 GOTO 2000
100 REM LIST WORD
105 IF X = 25 AND T = 0 THEN BS$ = A$
110 PRINT A$
112 GET J$
117 IF J$ = CHR$(27) THEN 1000
119 J$(X) = A$:X = X +1
130 L = L + LEN(A$): IF L >LN -(NW -(X -1)) THEN X = X -1:L = L - LEN(A$): PRINT "TOO LONG!<CTRL-G>": GOTO 1000
190 GOTO 15
1000 REM CHANGE
1010 PRINT
1020 PRINT "CHANGE "A$" TO: ";
1030 GOSUB 4000
1032 IF TY = 1 AND LEN(B$) < LEN(A$) THEN B$ = B$ + LEFT$(" ", LEN(A$) - LEN(B$))
1035 L = L + LEN(B$): IF L >LN -(NW -X) THEN PRINT "TOO LONG!<CTRL-G>":L = L - LEN(B$): GOTO 1000
1040 IF TY = 0 AND X = 25 THEN BS$ = B$
1045 J$(X) = B$:X = X +1: GOTO 15
1100 REM POKE IN NEW VALUES
1105 AD = ST
1110 FOR A = 1 TO X -1
1115 IF LEN(J$(A)) = 1 THEN 1150
1120 FOR B = 1 TO LEN(J$(A)) -1
1130 POKE AD, ASC( MID$ (J$(A),B,1))
1135 AD = AD +1
1140 NEXT B
1150 POKE AD, ASC( RIGHT$(J$(A),1)) +128:AD = AD +1
1160 NEXT A
1170 RETURN
2000 REM END
2005 GOSUB 1100
2010 PRINT : PRINT "DO YOU WANT TO SAVE THESE ALTERED TOKENS TO DISK? (Y/N)";
2020 INPUT "";I$
2030 IF LEFT$(I$,1) = "N" THEN END
2035 PRINT
2040 INPUT "FILE NAME: ";N$
2042 PRINT
2045 IF TY = 1 THEN INPUT "IF YOU HAVE CHANGED YOUR 'BSAVE' COMMAND, WHAT IS IT NOW? ";B$: IF B$ < >"" THEN BS$ = B$
2050 PRINT D$;BS$;N$;",A"ST",L"LN
2052 PRINT
2055 PRINT "TO RETREIVE, TYPE 'BLOAD "N$"'."
2057 PRINT "YOUR DOS COMMANDS ARE NOW CHANGED."
2060 END
3000 REM INSTRUCTIONS
3005 TEXT : HOME : NORMAL
3010 PRINT
3020 HTAB 6: PRINT "*** DOS COMMAND CHANGER ***"
3025 HTAB 11
3030 PRINT "BY DANIEL TOBIAS"
3040 PRINT "ALLOWS YOU TO CHANGE 'TOKEN' WORDS"
3045 PRINT "(COMMANDS AND ERROR MESSAGES)"
3050 PRINT "IN APPLE DOS 3.3."
3070 PRINT
3080 PRINT "TOKEN WORDS WILL APPEAR ONE BY ONE."
3090 PRINT "IF YOU WANT TO CHANGE THE COMMAND OR"
3100 PRINT "ERROR MESSAGE SHOWING, HIT THE KEY"
3110 PRINT "MARKED 'ESC'. IF YOU DO NOT WANT TO"
3120 PRINT "CHANGE IT, HIT ANY OTHER KEY."
3150 PRINT
3155 INPUT "HIT RETURN TO CONTINUE. ";I$: HOME : PRINT
3160 PRINT "THE NEW COMMANDS MUST FIT IN WHERE THE OLD ONES WERE IN MEMORY, SO IF YOU MAKE A NEW COMMAND LONGER IN LENGTH THAN AN"
3170 PRINT "OLD ONE YOU MUST MAKE ANOTHER ONE SHORTER. YOU WILL GET THE MESSAGE 'TOO LONG!' IF THERE IS NO ROOM TO FIT THE COMMAND YOU TYPED. YOU MUST THEN"
3180 PRINT "TYPE A SHORTER WORD."
3182 PRINT
3185 PRINT "NOTE: ERROR MESSAGES ARE STORED SLIGHTLYDIFFERENTLY, AND A REPLACEMENT MESSAGE MUST BE THE SAME LENGTH AS THE ORIGINAL.THIS PROGRAM WILL PAD IT WITH BLANKS IF NECESSARY."
3190 PRINT
3192 PRINT "SPACES WITHIN COMMANDS ARE NOT ALLOWED, BUT THEY ARE ALLOWED IN ERROR MESSAGES.": PRINT
3195 INPUT "WHICH DO YOU WANT TO CHANGE: COMMANDS OR ERROR MESSAGES? ";I$
3197 PRINT : IF LEFT$(I$,1) = "C" THEN TY = 0: GOTO 3200